package com.qf.service;

import com.qf.entity.Shop;
import com.qf.entity.custom.ShopCustom;

import java.util.List;

public interface ShopCustomService {

    /**
     * 查询所有店铺信息和商品信息
     * @return 返回一个ShopCustom实体类型的list集合
     */
    List<ShopCustom> getShop_Product(String productType);

    /**


     * 根据店铺距离排序 按升序排序 查询所有店铺商品信息
     * @return 返回一个ShopCustom实体类型的list集合
     */
    List<ShopCustom> getShop_ProductByDistance();

    /**
     * 根据店铺评分排序 按降序排序 查询所有店铺商品信息
     * @return  返回一个ShopCustom实体类型的list集合
     */
    List<ShopCustom> getShop_ProductByPoint();

    /**
     * 根据店铺销量排序 按降序排序 查询所有店铺商品信息
     * @return 返回一个ShopCustom实体类型的list集合
     */
    List<ShopCustom> getShop_ProductBySalesnum();

    /**
     * 根据是否免约 是否节假日可用 是否是新店 三个条件查询店铺商品信息
     * @param isfree 对应shop实体类中的isfree属性 是否免约
     * @param isholiday 对应shop实体类中的isholiday属性 是否是节假日
     * @param isnew 对应shop实体类中的isnew属性 是否是新店
     * @return 返回一个ShopCustom实体类型的list集合
     */
    List<ShopCustom> getShop_ProductByExample(String isfree, String isholiday, Integer isnew);

    /**
     * 根据搜索次数降序查询shop表的前三条数据
     * @return 返回List<ShopCustom>的数据
     */
    List<ShopCustom> getShopOrderByCount();

    /**
     * 用户搜索后增加count数量
     * @return 增加成功返回true 失败返回false
     */
    boolean updateShopCount(int id);

    /**
     * 模糊查询店铺名
     * @return 返回符合的List<Shop>
     */
    List<Shop> selecShopByNameKey(String search);

    /**
     * 当查询时就增加点击shopCount
     * @param shop 传入shop实体类
     * @return 增加成功返回true 失败返回false
     */
    public boolean modifyShopSearch(Shop shop);
    List<Shop> selectShopByNameKey(String search);

    /**
     * 根据店铺id查询店铺详细信息 以及 该店铺所含套餐信息
     * @param shopId 店铺id
     * @return 返回一个ShopCustom实体类型的list集合
     */
    List<ShopCustom> getShopSetMeal(Integer shopId);
}
